package cn.lingyangwl.agile.infra.weixin.mp.model.entity;

import cn.lingyangwl.agile.tenant.core.DataIsolation;
import cn.lingyangwl.agile.model.BasePlusPO;
import cn.lingyangwl.agile.common.datasource.core.type.LongListTypeHandler;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * 公众号粉丝表
 *
 * @author shenguangyang
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName(value = "wx_mp_user", autoResultMap = true)
@DataIsolation(filterTenant = true, tableName = "wx_mp_user")
public class MpUser extends BasePlusPO {
	/**
	 * 编号
	 */
    @TableId
	private Long id;
	
	/**
	 * 用户标识
	 */
	private String openId;
	
	/**
	 * 关注状态
	 */
	private String subscribeStatus;
	
	/**
	 * 关注时间
	 */
	private Date subscribeTime;
	
	/**
	 * 昵称
	 */
	private String nickname;
	
	/**
	 * 头像地址
	 */
	private String headImageUrl;
	
	/**
	 * 取消关注时间
	 */
	private Date unsubscribeTime;
	
	/**
	 * 语言
	 */
	private String language;
	
	/**
	 * 国家
	 */
	private String country;
	
	/**
	 * 省份
	 */
	private String province;
	
	/**
	 * 城市
	 */
	private String city;

	/**
	 * 标签编号数组
	 *
	 */
	@TableField(typeHandler = LongListTypeHandler.class)
	private List<Long> tagIds;
	
	/**
	 * 微信公众号 appid
	 */
	private String mpAppId;
	
	/**
	 * 是否删除
	 */
	private Boolean deleted;

    public static LambdaQueryWrapper<MpUser> lqw() {
		return Wrappers.lambdaQuery();
	}

	public static LambdaUpdateWrapper<MpUser> luw() {
		return Wrappers.lambdaUpdate();
	}
}
